package Map集合;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/*
    [字符串中进行出现字符次数统计]
 */
public class TestMapCase {
    public static void main(String[] args) {
        System.out.println("请输入字符串：");
        String s = new Scanner(System.in).nextLine();
        //采用map集合存放数据---引用数据类型：输入字符串为字符Character，检测字符串出现频率次数为整数Integer
        Map<Character, Integer> map= new HashMap<>();//hashmap
        for (int i = 0; i <s.length() ; i++) { //for循环
            char ch = s.charAt(i); //charAt()
            System.out.println("第"+(i+1)+"个字符："+ch);
            Integer in = map.get(ch);// map获取字符
            if(in==null){ //判断是否出现过
                map.put(ch,1); //没出现 开始次数加一
            }else {
                map.put(ch,in+1);//出现过，替换为原来基础上加一
            }
        }
        //遍历完后
        System.out.println("总共重复出现频率："+map);
        System.out.println(
                "----------------------------------------------------------------------"
        );
        //练习第二遍
        //K为字符类型 ； V为整形
        Map<Character,Integer> map2 = new HashMap<>();

        for (int i = 0; i <s.length() ; i++) {
            char c = s.charAt(i);
            System.out.println(c);//单独打印字符串每个字符
            Integer value= map2.get(c);//根据key=c来获取value值
            if(value==null){
                map2.put(c, 1);
            }else {
                map2.put(c, value+1);
            }
        }
        System.out.println("出现频率/统计次数："+map2);//打印map集合
    }
}
